package com.itheima.反射reflect.反射核心案例_使用场景;

import java.io.InputStreamReader;
import java.lang.reflect.Method;
import java.util.Properties;

public class Test2 {
    public static void main(String[] args)throws Exception {
    //构建一个properties，读取src下的GAG.properties中的配置信息进内存
        Properties prop = new Properties();
        //把本地文件加载到集合中
        prop.load(new InputStreamReader(ClassLoader.getSystemClassLoader().getResourceAsStream("GAG.properties"),"GBK"));
        //通过Class属性获取Clas对象
        Class clazz = Class.forName(prop.getProperty("类名"));
        //方式获取要运行的方法对象
        Method method = clazz.getDeclaredMethod(prop.getProperty("方法名"));
        //忽略安全检查
        method.setAccessible(true);
        //f反射构建类的对象
        Object obj = clazz.newInstance();
        //反射调用方法（对象名.invoke）
        method.invoke(obj);

    }
}

class dayone{
    public void sw(){
        System.out.println("上午睡觉");
    }
    private void xw(){
        System.out.println("下午也是睡觉");
    }
}

class zhoumo{
    public void qdm(){
        System.out.println("周末上午敲代码");
    }
    private void play(){
        System.out.println("周末下午去玩");
    }
}